/**
 * 
 */
package net.gamasoft.sistemadeinventarios.dao;

import java.sql.ResultSet;
import java.util.ArrayList;

import net.gamasoft.sistemadeinventarios.controller.ConexionBD;
import net.gamasoft.sistemadeinventarios.model.Banco;
import net.gamasoft.sistemadeinventarios.model.Cliente;

/**
 * @author dpaniagua.
 *
 */
public class BancoDAO {

	ConexionBD conexionBD = new ConexionBD();

	/**
	 * Permite guardar un banco en la base de datos.
	 * @param nombre del banco guardado
	 * @return true si fue exitoso
	 * @throws Exception en caso de error al guardar el banco.
	 */
	public boolean guardarBanco(String nombre) throws Exception {
		boolean conectado = conexionBD.conectar();
		//Si se hace la conexion.
		if (conectado) {
			String sql = "INSERT INTO BANCO(nombre) VALUES ('"+nombre+"')";
			conexionBD.ejecutarSQL(sql);
			conexionBD.desconectar();
			return true;
		} else {
			System.err.println("Error al conectarse a la bd");
			return false;
		}
	}

	/**
	 * Consultar la lista de bancos de la bd.
	 * @return los bancos recuperados
	 * @throws Exception en caso de error al consultar
	 */
	public ArrayList<Banco> consultarBanco() throws Exception{
		ConexionBD conexionBD = new ConexionBD();
		boolean conectado = conexionBD.conectar();
		//Si se hace la conexion.
		if (conectado) {
			//Se crea la lista de bancos.
			ArrayList<Banco> bancos = new ArrayList<>();
			String sql = "SELECT * FROM BANCO";
			//Los datos de consulta se almacenan en rs.
			ResultSet rs = conexionBD.ejecutarSelect(sql);

			//Mientras haya datos existentes en rs.
			while (rs.next()) {
				//Se recupera cada banco
				Banco banco = new Banco();
				banco.setIdBanco(rs.getInt("idBanco"));
				banco.setNombre(rs.getString("nombre"));
				//se agrega cada banco a la lista.
				bancos.add(banco);
			}

			conexionBD.desconectar();
			return bancos;
		} else {
			System.err.println("Error al conectarse a la bd");
			return null;
		}
	}
}
